package com.kazusa.myservlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet("/request")
public class ServletRequest extends HelloServlet{
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
//        * 常用方法
//        * 获取请求时的完整路径（从http开始到？前面结束）
        String url=request.getRequestURL().toString();
        System.out.println("获取的完整路径为："+url);
//        * 获取请求时的部分路径（从项目的站点名开始，到？前面结束）
        String uri=request.getRequestURI();
        System.out.println("获取的部分路径为："+uri);
//        * 获取请求时的参数字符串（从？后面开始，到最后的字符串）
        String queryString=request.getQueryString();
        System.out.println("获取的请求参数为："+queryString);
//        * 获取请求方式（get和post）
        String method=request.getMethod();
        System.out.println("请求方式为："+method);
//        * 获取当前协议版本（HTTP/1.1）
        String protocol=request.getProtocol();
        System.out.println("当前协议版本为："+protocol);
//        * 获取项目的站点名（项目对外访问路径）
        String webapp=request.getContextPath();
        System.out.println("项目的站点名为："+webapp);


        /*获取请求参数*/
//        获取指定名称的参数值,返回字符串（重点）（最重要的方法，都是用这个获取字符串）
        String uname=request.getParameter("uname");
        String upwd=request.getParameter("upwd");
        System.out.println("用户名为："+uname+"\n"+"密码为："+upwd);
//        获取指定名称参数的所有参数值,返回一个字符串数组（用于复选框传值）
    String[] hobbys =request.getParameterValues("hobby");
    if(hobbys!=null&&hobbys.length>0){
        for(String hobby:hobbys){
            System.out.println("爱好："+hobby);
        }
    }
    }
}
